package com.unistec.fileserver.server.provider;

import java.io.InputStream;
import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.unistec.fileserver.client.entity.Resource;

/**
 * 存储搜索提供者
 * 
 * @description
 * @author 胡晓光
 * @date 2021-9-29
 * @time 9:15:48
 *
 */
public interface IResourceSearchProvider {

	/**
	 * 搜索资源
	 * 
	 * @param siteParams
	 * @param params
	 * @return
	 */
	public List<Resource> searchResource(JSONObject params, PageInfo<Resource> pageInfo);

	/**
	 * 根据外部id获取资源
	 * 
	 * @param siteParams
	 * @param foreignIds
	 * @return
	 */
	public List<Resource> getResourceInfoByForeignStorageId(List<String> foreignIds);

	/**
	 * 获取资源信息
	 * 
	 * @param siteParams
	 * @param urls
	 * @return
	 */
	public List<Resource> getResourceInfoByUrl(List<String> urls);

	/**
	 * 获取资源信息
	 * 
	 * @param siteParams
	 * @param params
	 * @return
	 */
	public Resource getResourceInfoByUnique(String unique);

	/**
	 * 获取文件流
	 * 
	 * @description
	 * @author 胡晓光
	 * @date 2021-9-30
	 * @time 11:53:47
	 * 
	 * @param resource
	 * @return
	 */
	public InputStream getFileInputStream(Resource resource);

	/**
	 * 获取文件输入流
	 * 
	 * @description
	 * @author 胡晓光
	 * @date 2021-10-2
	 * @time 9:08:41
	 * 
	 * @param path
	 * @return
	 */
	public InputStream getFileInputStream(String path);
}
